from rest_framework import serializers
from goods.models import SPU, Brand, GoodsCategory


# 定义一个spu的序列化器，完成获取spu表的数据的功能
class SPUViewSetSerializer(serializers.ModelSerializer):

    # 由于此时前端获取不到品牌数据，而在spu表里，他是外键，所以这里要重写一下
    brand = serializers.StringRelatedField(read_only=True) #因为是多方，所以不用加many=True
    brand_id=serializers.StringRelatedField(read_only=True) #包括id也要重写一下

    # 分类一也一样要
    category1 = serializers.StringRelatedField(read_only=True)  # 因为是多方，所以不用加many=True
    category1_id = serializers.StringRelatedField(read_only=True)  # 包括id也要重写一下

    # 分类二也一样要
    category2 = serializers.StringRelatedField(read_only=True)  # 因为是多方，所以不用加many=True
    category2_id = serializers.StringRelatedField(read_only=True)  # 包括id也要重写一下

    # 分类三也一样要
    category3 = serializers.StringRelatedField(read_only=True)  # 因为是多方，所以不用加many=True
    category3_id = serializers.StringRelatedField(read_only=True)  # 包括id也要重写一下

    class Meta:
        model = SPU
        fields = "__all__"


# 定义一个序列化器，获取品牌信息，展示在新增spu的页面
class SPUBrandSimpleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Brand
        fields = "__all__"

# 定义一个序列化器，获取spu新增页面的一级分类信息
class SPUCategoriesSerializer(serializers.ModelSerializer):
    class Meta:
        model = GoodsCategory
        fields = "__all__"